package hl.leco.colle;

import java.util.*;

public class ListTest {
    public static void main(String[] args){
        // list 相比 collection 主要是有序，可以精准操作元素
        // 创建对象
        List list = new ArrayList();
        // 增
        list.add("锤子");
        list.add("苹果");
        list.add("小米");
        list.add(36);
        list.add(0,"华为");
        System.out.println("list 大小：" + list.size());
        System.out.println(list);
        // 删
        list.remove(1);
        System.out.println(list);
        
        // 遍历
        // 1、使用 fori
        System.out.println("--------- fori -----------");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        // 2、使用 foreach
        System.out.println("---------- foreach ----------");
        for (Object o : list) {
            System.out.println(o);
        }
        // 3、使用迭代器 iterator
        System.out.println("---------- iterator ---------");
        Iterator iterator = list.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        // 4、使用 列表迭代器 listIterator
        System.out.println("--------- listIterator 从前往后 ---------");
	    ListIterator listIterator = list.listIterator();
	    while (listIterator.hasNext()){
		    System.out.println(listIterator.nextIndex() + ":" + listIterator.next());
	    }
	    System.out.println("--------- listIterator 从后往前 需要指针指向最后 所以使用上一个 ---------");
	    while (listIterator.hasPrevious()){
		    System.out.println(listIterator.previousIndex() + ":" + listIterator.previous());
	    }
	    
    }
}
